-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design doc for thin logical volumes #442
Conversation
8b1cdc8
to
55f00cf
Compare
@sp98 I will reply tomorrow. Please wait for a while. |
25ff716
to
d3ea546
Compare
@sp98 @leelavg @travisn For example, we could add the following new field:
A new annotation for capacity management is generated for each device-class corresponding to the thin pool existing in the node. Supplementary figures are provided. If you have any questions, please ask. |
820e825
to
28a1bba
Compare
7e35f68
to
6450833
Compare
docs/proposals/thin-volumes.md
Outdated
uint64 overprovision_bytes = 4; // Space available on thin pool with overprovision. | ||
float data_free = 5; // Data percent free in thin pool. | ||
float metadata_free = 6; // Metadata percent free in thin pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
general query, can I use data and metadata percent as double in proto so they'll be represented as float64 in go and there'll be very few conversions?
Is this question about gRPC than this proposal? If so, yes. double
is mapped to float64
.
https://developers.google.com/protocol-buffers/docs/proto3
In addition, I understood there is no ways to know the actual consumed space in bytes. Using percent unit is OK.
|
||
- Does topolvm constantly poll the available capacity of the thin pools? | ||
|
||
- How to reload lvmd to use updated lvmd.yaml? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's OK to find the way during implementation.
Please reflect on the following comments then I approve this (and @llamerada-jp 's approval is also necessary to merge). https://github.com/topolvm/topolvm/pull/442/files#r833957396 Please describe the possible values of https://github.com/topolvm/topolvm/pull/442/files#r836222309 Please remove "omitempty" from https://github.com/topolvm/topolvm/pull/442/files#r836234886 As discussed in slack, it's not necessary to handle https://github.com/topolvm/topolvm/pull/442/files#r828721468 And some additional notes.
As I said in another comment, it's done by
Please remove this item. Marking it as out-of-scope is also OK. |
|
About pattern-A: pattern-B: |
@llamerada-jp I went with a slightly modified pattern-a as below from commit
case TypeThick:
if dc.Default {
res.FreeBytes = vgFree
}
// [...]
case TypeThin:
// [...]
// here opb is the free overprovision bytes
opb := uint64(math.Ceil(dc.ThinPoolConfig.OverprovisionRatio*float64(tpu.SizeBytes))) - tpu.VirtualBytes
if dc.Default {
// TODO (leeavg): remove this after removal of support for inline ephemeral volumes
res.FreeBytes = opb
}
// [...]
|
OK. Would you please update the comment about it at the next push? |
Signed-off-by: Santosh Pillai <sapillai@redhat.com> Co-authored-by: Leela Venkaiah G <lgangava@redhat.com>
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you. LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Signed-off-by: Santosh Pillai sapillai@redhat.com